package com.yxh.www.author.service;

import com.yxh.www.author.domain.SmServerApi;
import com.yxh.www.common.result.Result;
import com.yxh.www.mysql.base.BaseService;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 系统接口资源表 服务类
 * </p>
 *
 * @author Yangxiaohui
 * @since 2020-05-09
 */
public interface SmServerApiService extends BaseService<SmServerApi> {
    /**
     * 根据ServerId查询 API数量
     *
     * @param serverId 服务ID
     */
    Integer countSmServerApiByServerId(String serverId);

    /**
     * 根据ServerId更新 API
     *
     * @param serverId 服务ID
     */
    void updateSmServerApiByServerId(String serverId, List<SmServerApi> smServerApis);

    /**
     * 分组去重查询 ApiHash
     */
    Set<String> listApiHash();

    /**
     * 根据第三方账户ID 获取可访问接口列表
     *
     * @param smAccountId 第三方账户ID
     * @return 统一响应 {@link Result <List>} 实体类型 {@link SmServerApi}
     */
    Result<List<SmServerApi>> listSmServerApiBySmAccountId(String smAccountId);

    /**
     * 更新Api接口信息到Redis服务
     */
    void updateServerApiToRedis(RedisTemplate<String,Object> redisTemplate);

}
